#ifndef EVALUATEFITNESSWORKER_H_
#define EVALUATEFITNESSWORKER_H_

#include "../../Environment/Environment.h"
#include "../../Job/EvaluateFitness/EvaluateFitnessJob.h"
#include "../Worker.h"

/** Base class for evaluate fitness workers.
 */
class EvaluateFitnessWorker : public Worker
{
    public:
        EvaluateFitnessWorker();
        void setEnvironment(Environment*);    /**< Sets the environment that this worker will use        */
        EvaluateFitnessJob *getJob() const;   /**< Returns the contained job                             */
        
        virtual void run() = 0;               /**< Abstract run function                                 */
    
    protected:
        Environment *environment;             /**< Pointer to the environment used for fitness functions  */
        EvaluateFitnessJob *efJob;            /**< Job containing the information for an evaluate fitness */
};

#endif /*LOCALEVALUATEFITNESSWORKER_H_*/
